package org.example.env_boot.repository;

import org.example.env_boot.entity.Supervisor;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

/**
 * 公众监督员数据访问接口
 */
@Repository
public interface SupervisorRepository extends JpaRepository<Supervisor, Integer> {
    
    /**
     * 根据监督员编号查找
     */
    Optional<Supervisor> findBySupervisorCode(String supervisorCode);
    
    /**
     * 根据监督员编号和密码查找（用于登录）
     */
    Optional<Supervisor> findBySupervisorCodeAndPassword(String supervisorCode, String password);
    
    /**
     * 根据监督员姓名查找
     */
    List<Supervisor> findBySupervisorName(String supervisorName);
    
    /**
     * 根据省份ID查找
     */
    List<Supervisor> findByProvinceId(Integer provinceId);
    
    /**
     * 根据城市ID查找
     */
    List<Supervisor> findByCityId(Integer cityId);
    
    /**
     * 根据省份ID和城市ID查找
     */
    List<Supervisor> findByProvinceIdAndCityId(Integer provinceId, Integer cityId);
    
    /**
     * 检查监督员编号是否已存在
     */
    boolean existsBySupervisorCode(String supervisorCode);
    
    /**
     * 检查手机号是否已存在
     */
    boolean existsBySupervisorPhone(String supervisorPhone);
} 